home *** CD-ROM | disk | FTP | other *** search
/ Amiga Mag HDD Backup / Amiga Mag HDD Backup.zip / Amiga Mag HDD Backup / Alexander.img.bin / Alexander.img / ***9.11 All NEWer important / 10.2 / Vahlenkamp⁄HiSoft Basic pics / HiSoftBASIC2Review.asc < prev   
Text File  |  1983-05-04  |  10KB  |  104 lines

  1.  
  2.                                                Henning Vahlenkamp
  3.                                                216 Spring Hill Road
  4.                                                Matawan, NJ 07747
  5.                                                (908) 727-7987
  6.                                                SS# 140-84-2862
  7.  
  8. Product review for Amazing Computing
  9.  
  10.  
  11. HiSoft BASIC 2
  12. --------------
  13.  
  14.     If you're not a veteran of the pre-2.0 era, you've probably never used AmigaBASIC. Developed by Microsoft for the original Amiga 1000 back in 1985, AmigaBASIC was a powerful descendent of the interpreted BASIC languages used by many 8-bit computers. (Actually, ABasiC predated AmigaBASIC, but it was quickly dropped.) By the time 2.0 appeared, AmigaBASIC had become a dinosaur that didn't work too well with newer machines, so it was retired in favor of ARexx.
  15.     As veterans will no doubt remember, the AmigaBASIC interpreter was slow and not exactly as "Amigatized" as it could have been. But nevertheless it made programming the Amiga easy, not requiring a lot of in-depth knowledge of the operating system. AmigaBASIC's popularity spawned a number of enhancers (compilers and language extensions), the latest of which is HiSoft BASIC 2.
  16.     HSB2, a major upgrade to HiSoft BASIC Pro, is an AmigaBASIC enhancer plus a whole lot more. Besides offering high compatibility with AmigaBASIC programs, it reasonably accommodates Microsoft QuickBASIC, Borland Turbo Basic, and even many generic 8-bit BASICs. And it features a professional, Style Guide-compliant integrated development environment (editor/compiler/debugger) reminiscent of Borland's languages for the PC.
  17.     All the software ships on a single compressed disk, and you can install it to three floppy disks or your hard disk via an Installer script. A full install, including the wealth of programming examples, consumes under 3MB of storage. Though HSB2 is compatible with all 1MB Amigas running 1.3 to 3.1, a 2MB 2.04+ machine with a hard disk is strongly recommended.
  18.  
  19. The Language
  20.  
  21.     The HSB2 language is essentially a superset of AmigaBASIC with miscellaneous extensions for other BASICs. All AmigaBASIC commands were retained except, as shown in Table 1, the interpreter-specific ones and COMMON, RESUME, and OBJECT.PRIORITY, which are gone for some strange reason. Just about any valid AmigaBASIC syntax is recognized, so the most likely porting problems would involve programs using HSB2 commands as variable names. A supplied include file (AmBas.bh) solves this problem by disabling most new commands, but it has a bug. However, you can fix it by editing AmBas.bh and eliminating the disabled REM.
  22.     As for language enhancements, a handful of the original commands get some extra parameters or new syntax, and all graphics commands were extended for 256-color AGA - still no direct EHB/HAM/HAM8 support. You'll also find plenty of new commands offering additional loop and decision constructs, more string manipulations, the ability to load and save arbitrary data blocks, and true recursive functions among other things. In short, HSB2 gives you a lot of the modern, structured BASIC language functionality left out of AmigaBASIC. The only real omission - also missing in AmigaBASIC - is an aggregate data type such as a record or a structure.
  23.     Even with a more powerful suite of commands at your disposal, your access to many Amiga features remains quite limited. That is unless you're knowledgeable enough to call OS functions directly. HSB2 provides all the .bmap, .bh, and .bc include files you'll need to use anything in 1.3 to 3.1. On the downside, the documentation reveals little about Amiga system programming, making the ROM Kernel Manuals required reading. It would have been nice if more OS features were accessible directly through BASIC commands.
  24.  
  25. The Editor
  26.  
  27.     Although you can use any editor and compile from the command line, you may prefer the built-in editor. The HSB editor integrates source code editing, compiling, and debugging, providing interactive program development. After years of using similar integrated programming environments on the PC, I am convinced that this is light years ahead of the old command line style.
  28.     Of course the editor does all the standard text manipulation, and it sports some bells and whistles too. Text blocks, for instance, can be shifted left and right as well as case-altered. Up to ten bookmarks can be set. You can record and play macros, but not load/save them. Windows can be arranged many predefined ways. And you can have multiple views on multiple files. Overall, the HSB editor is definitely sufficient for your source code editing needs, even though it's outgunned by the powerful dedicated editors.
  29.  
  30. The Compiler
  31.  
  32.     The compiler is invoked via the command line or through menus and hotkeys in the editor. As you might expect, there are many compilation options covering compatibility, safety checks, and debugging. You can select them individually in requesters and your source code, or collectively as convenient menu presets. Only CPU and FPU-specific code generation is absent, so you're stuck with plain 68000 code.
  33.     One particularly useful compiler feature is pretokenizing. If you have include files that are seldom modified (e.g. to call OS functions), you can tokenize them just once, saving a tedious compilation step during development. While this time-saver is great, HSB2 also should be able to create object modules or function libraries (similar to Pascal units) that could be used in other BASIC programs. HSB2 can produce object code to be linked with C and assembly subroutines, however.
  34.     Another notable thing is the shared library. Programs can be compiled as either stand-alone or requiring the 52K hbasic2.library that is installed in your Libs: directory. The library eliminates about 14K of initialization and environment code from finished programs, but the documentation doesn't mention its copyright status. Since depending on this run-time library is also somewhat inelegant, I'd recommend stand-alone compilation if you plan to distribute your programs.
  35.  
  36. The Debugger
  37.  
  38.     MonAm, the HSB2 debugger also included with HiSoft's DevPac 3, is somewhat of a mixed blessing. This powerful tool is clearly geared toward expert programmers and hackers. After starting MonAm from the editor, it opens a custom screen divided into a maximum of five sections resembling windows. These windows display register contents, memory dumps, program disassemblies, and source code listings. Since MonAm is a low-level debugger, all operations, such as single-stepping your code or tracing it with breakpoints, are done on individual machine instructions. The only real high-level feature is the association between each BASIC program line and its corresponding assembly language code.
  39.     Granted this style of debugging is common on the Amiga, but some higher-level capabilities would be much appreciated. For example, I'd like to step through the execution of each BASIC program line using a highlight bar in the editor window itself. And how about a watch window on the editor screen that allows you to display and modify variable contents during single-stepping and tracing. These aren't exactly novel features; Borland and others have been using them for years in language products for the PC. All Amiga languages should have them too, given their enormous usefulness in debugging.
  40.  
  41. The Manual
  42.  
  43.     Undoubtedly one of HSB2's highlights, the 640-page user manual is far more readable than the arcane old AmigaBASIC manual. It does a considerably good job tutoring those unfamiliar with BASIC as well as thoroughly explaining how to use the editor, compiler, and debugger. Plus it has an exemplary command reference section. As mentioned earlier, the manual provides a minimum of operating system information. It mainly overviews the different modules (libraries, devices, resources, etc.). I suppose this is understandable since the OS is very complex indeed.
  44.  
  45. Conclusions
  46.  
  47.     The bottom line with any development system is how well it does its job of creating programs. HSB2 is up to that task. Frankly, you can do just about anything in HSB2 that can be done in C. But this doesn't change the fact that C is by nature more powerful and efficient. After all, the Amiga's operating system is written in C. However BASIC is easier to understand, and HSB2 provides a good, user-friendly environment. So if you're interesting in BASIC programming, HSB2 is a worthwhile choice.
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67. Table 1.  Differences from AmigaBASIC
  68.  
  69.  
  70. New Commands
  71.  
  72. BEGINIO          FORMATI$                   MKFFP$
  73. BIN$             FORMATL$                   ON...CLOSE
  74. BLOAD            FORMATS$                   PCOPY
  75. BSAVE            FORMATD$                   PEEK$
  76. CALL LOC         FREEFILE                   REDIM
  77. CALLS            FUNCTION...END FUNCTION    REPEAT...END REPEAT
  78. COMMAND$         INCR                       RESET
  79. COMMON SHARED    INITHOOK                   RINSTR
  80. CONST            LOCAL                      RMDIR
  81. CURDIR$          LOG10                      RTRIM$
  82. CVFFP            LOG2                       SELECT...END SELECT
  83. DECR             LTRIM$                     STATIC
  84. DO...LOOP        MAX                        SYSTAB
  85. EXIT             MIN                        TAGLIST
  86. FEXISTS          MKDIR                      VARPTRS
  87.  
  88.  
  89. Removed Commands
  90.  
  91. COMMON           LLIST           OBJECT.PRIORITY
  92. CONT             LOAD            RESUME NEXT
  93. DELETE           MERGE           SAVE
  94. LIST             NEW
  95.  
  96.  
  97. Modified Commands
  98.  
  99. CHAIN            DECLARE         LOCATE
  100. CLEAR            DEF FN          SCREEN
  101. CLOSE            FRE             SUB
  102. COLOR            LIBRARY         WINDOW
  103.  
  104.